package com.crm.system.service.index;


import com.crm.common.model.DhPageInfo;
import com.crm.model.vo.index.PerformanceVO;
import com.crm.model.vo.index.ProductVO;
import com.crm.model.vo.opportunityManager.PerformanceRankingVO;

import java.util.List;
import java.util.Map;

/**
 *首页信息
 */
public interface FirstPageService {

    /**
     * 首页统计信息
     * @param dateType thisMonth 本月 thisLastMonth 上月 thisYear 本年
     * @param bs 1数据一览  2销售简报
     * @return
     */
    Map<String, Object> firstPageContent(String dateType,String bs);

    /**
     * 首页统计个人业绩排行榜(走redis)
     * @return
     */
    Map<String,Object> personalPerformanceRankingRedis(String dateType,String combination);

    /**
     * 首页统计个人业绩排行榜
     * @return
     */
    Map<String,Object> personalPerformanceRankingList(String dateType, String combination);

    /**
     * 排名
     * @param dateType
     * @param combination
     * @return
     */
    //String personalPerformanceRanking(String dateType,String combination);

    /**
     * 首页统计个人业绩走势图
     * @return
     */
    PerformanceVO performanceTrend();

    /**
     * 产品成交排行榜
     * @param dateType 1年 2年月
     * @param combination dateType 1 2021  2 202101
     * @return
     */
    List<ProductVO> productTurnoverList(String dateType,String combination);

    /**
     * 二级管理首页统计信息
     * @param dateType thisWeek 本周 lastWeek 上周 lastMonth 上月 thisMonth 本月
     * @return
     */
    Map<String, Object> adminFirstPageContent(String dateType);
    /**
     * 二级管理首页统计信息
     * @param dateType thisWeek 本周 lastWeek 上周 lastMonth 上月 thisMonth 本月
     * @return
     */
    Map<String, Object> userFirstPageContent(String dateType);

    /**
     * 首页统计二级管理个人业绩金额走势图
     * @return
     */
    PerformanceVO adminPerformanceTrend();

    /**
     * 首页统计二级管理业绩排行榜
     * @param dateType thisMonth 本月 lastMonth 上月   thisYear 今年  lastYear 去年
     * @return
     */
    List<PerformanceRankingVO> adminCompanyPerformanceRanking(String dateType);

    /**
     * 首页统计二级管理分公司下的业绩排行榜
     * @param dateType thisMonth 本月 lastMonth 上月   thisYear 今年  lastYear 去年 thisWeek 本周  lastWeek 上周
     * @return
     */
    List<PerformanceRankingVO> adminCompanyPersonalPerformanceRanking(String dateType);

    List<PerformanceRankingVO> adminCompanyPersonalPerformanceRank(String dateType,String seniority);
    List<String> getSeniority();

    /**
     * 首页统计全部个人业绩
     */
    Boolean firstPageSalesman();

    /**
     * 首页统计按年个人业绩
     */
    Boolean firstPageSalesmanByYear();

    /**
     * 首页统计按年月个人业绩
     */
    Boolean firstPageSalesmanByMonth();
}
